package primary.array;

import java.util.HashMap;
import java.util.Map;

/**
 * @Author Elephas
 * @Date 2022/1/7
 **/
public class SingleNumber {
    public static void main(String[] args) {

    }

    final int[] test01 = new int[]{4,1,2,1,2};
    /*
        解法一：把所有数字异或一遍，最终结果就是那个要求的数字

     */
    public int singleNumber(int[] nums){
        int result=0;
        for (int i = 0; i < nums.length; i++) {
            result ^= nums[i];
        }
        return result;
    }

    /*
        解法二：用一个Map存储元素出现次数。
     */
    class Solution {
        public int singleNumber(int[] nums) {
            Map<Integer, Integer> map = new HashMap<>();
            for(Integer i : nums){
                if(!map.containsKey(i)){
                    map.put(i,1);
                }else{
                    map.put(i,2);
                }
            }
            for(Integer i : nums){
                if(map.get(i)==1)
                    return i;
            }
            return -1;//未找到只有1个的数
        }
    }


}
